package main

import "fmt"

func main() {
	fmt.Println(plusOne([]int{1, 2, 3}))
	fmt.Println(plusOne([]int{1, 2, 9}))
	fmt.Println(plusOne([]int{9, 9, 9}))
}

func plusOne(digits []int) []int {
	var i int
	for i = len(digits) - 1; i >= 0 && digits[i]+1 > 9; i-- {
		digits[i] = 0
	}
	if i == -1 {
		digits = append([]int{1}, digits...)
	} else {
		digits[i] = digits[i] + 1
	}
	return digits
}
